package com.back.demo.mapper;

import com.back.demo.mapper.myDO.*;
import com.back.demo.mapper.myDO.basicDO.StudentInformationDO;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;

import java.util.ArrayList;

@Mapper
@Repository
public interface StudentMapper {

    StudentInformationDO selectStudentInformation(String studentId);

    // insert
    // insert
    // insert
    void insertPaper(String studentId, PaperDO paperDO);

    void insertPatent(String studentId, PatentDO patentDO);

    void insertCompetition(String studentId, CompetitionDO competitionDO);

    void insertSoftwareCopyright(String studentId, SoftwareCopyrightDO softwareCopyrightDO);

    void insertOther(OtherDO otherDO);
    // insert
    // insert
    // insert

    // update
    // update
    // update
    void updatePaper(String studentId, PaperDO paperDO);

    void updatePatent(String studentId, PatentDO patentDO);

    void updateCompetition(String studentId, CompetitionDO competitionDO);

    void updateSoftwareCopyright(String studentId, SoftwareCopyrightDO softwareCopyrightDO);

    void updateOther(OtherDO otherDO);
    // update
    // update
    // update

    // select
    // select
    // select
    ArrayList<PaperDO> selectPaper(String studentId);

    ArrayList<PatentDO> selectPatent(String studentId);

    ArrayList<CompetitionDO> selectCompetition(String studentId);

    ArrayList<SoftwareCopyrightDO> selectSoftwareCopyright(String studentId);

    ArrayList<OtherDO> selectOther(Integer userId);
    // select
    // select
    // select


    // select detail
    // select detail
    // select detail
    PaperDO selectPaperDetail(String studentId, Integer paperId);

    PatentDO selectPatentDetail(String studentId, Integer patentId);

    CompetitionDO selectCompetitionDetail(String studentId, Integer competitionId);

    SoftwareCopyrightDO selectSoftwareCopyrightDetail(String studentId, Integer softwareCopyrightId);

    OtherDO selectOtherDetail(Integer userId, Integer otherId);
    // select detail
    // select detail
    // select detail


    // remove
    // remove
    // remove
    void removePaper(String studentId, Integer paperId);

    void removePatent(String studentId, Integer patentId);

    void removeCompetition(String studentId, Integer competitionId);

    void removeSoftwareCopyright(String studentId, Integer softwareCopyrightId);

    void removeOther(Integer userId, Integer otherId);
    // remove
    // remove
    // remove

    // update filePath
    // update filePath
    // update filePath
    void updatePaperFileInformation(Integer paperId, String uniqueFileName, String originalFileName);

    void updatePatentFileInformation(Integer patentId, String uniqueFileName, String originalFileName);

    void updateCompetitionFileInformation(Integer competitionId, String uniqueFileName, String originalFileName);

    void updateSoftwareCopyrightFileInformation(Integer softwareCopyrightId, String uniqueFileName, String originalFileName);
    // update filePath
    // update filePath
    // update filePath


}
